package com.witmore.neutron.ai.db.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * neutron服务商信息表
 * </p>
 *
 * @author 豆子高
 * @since 2025-09-01
 */
@Getter
@Setter
@TableName("neutron_provider_profile")
public class ProviderProfileDO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 服务商名称
     */
    @TableField("provider_name")
    private String providerName;

    /**
     * 服务商描述
     */
    @TableField("provider_desc")
    private String providerDesc;

    /**
     * 服务商Logo URL
     */
    @TableField("provider_logo")
    private String providerLogo;

    /**
     * 联系人
     */
    @TableField("contact_person")
    private String contactPerson;

    /**
     * 联系电话
     */
    @TableField("contact_phone")
    private String contactPhone;

    /**
     * 联系邮箱
     */
    @TableField("contact_email")
    private String contactEmail;

    /**
     * 营业执照URL
     */
    @TableField("business_license")
    private String businessLicense;

    /**
     * 认证状态（0：未认证；1：已认证；2：认证失败）
     */
    @TableField("certification_status")
    private Integer certificationStatus;

    /**
     * 已创建Agent数量
     */
    @TableField("agent_count")
    private Integer agentCount;

    /**
     * 累计使用次数
     */
    @TableField("total_usage_count")
    private Integer totalUsageCount;

    /**
     * 状态（0：禁用；1：正常）
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 会话总次数
     */
    @TableField("session_total_times")
    private Integer sessionTotalTimes;

    /**
     * 会话剩余次数
     */
    @TableField("session_remaining_times")
    private Integer sessionRemainingTimes;
}
